package 力扣.数组;

import java.util.ArrayList;
import java.util.List;

public class 汇总区间228 {
    public static void main(String[] args) {
        int[] ints = {0, 1, 2, 4, 5, 7};
        List<String> strings = summaryRanges(ints);
        System.out.println(strings);
    }

    /**
     * 数组的位置 0 出发，向右遍历。
     * 每次遇到相邻元素之间的差值大于 1 时，我们就找到了一个区间。
     * 遍历完数组之后，就能得到一系列的区间的列表
     * @param nums
     * @return
     */
    public static List<String> summaryRanges(int[] nums) {
        ArrayList<String> lists = new ArrayList<>();
        int length = nums.length;
        int i = 0;
        while (i < length){
            int start = nums[i];
            i++;
            while (i < length && (nums[i] == nums[i-1] + 1)){
                i++;
            }
            int end = nums[i-1];
//            String result = null;
//            if (start == end){
//                 result = start + "";
//            }else {
//                 result = start +"->"+ end;
//            }
            //使用可变字符串StringBuffer
            StringBuffer result = new StringBuffer(Integer.toString(start));
            if (start != end){//判断是否是单个的数字
                result.append("->");
                result.append(Integer.toString(end));
            }
            lists.add(result.toString());
        }
        return lists;
    }

}
